<?php
/**
 @prefix : <http://purl.org/net/ns/doas#> .
 @about: "<app/app_controller.php>", a: ":PHPScript",
 :shortdesc "This is a placeholder class.";
 :author [:name "Logue"; :homepage <http://logue.be/> ];
 :license <http://www.gnu.org/licenses/gpl-3.0.html>;
 :dependencies "none" .
*/
// Lorelei Copyright (C) 2008 by Logue
// This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
// This is free software, and you are welcome to redistribute it
// under certain conditions; type `show c' for details.

class AppController extends Controller {
	var $components = array('Auth', 'Session');
	var $helpers = array('Html', 'Form', 'Javascript', 'Head');

	// セッションのユーザー情報を$userに格納
	// http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=706&forum=14&post_id=2013
	
	function beforeFilter(){
		//ログインが失敗した際のエラーメッセージ
		$this->Auth->loginError = __('Login failure.',true);
		//権限が無いactionを実行した際のエラーメッセージ
		$this->Auth->authError = __('You are not authorized to access that location.',true);

		//ログイン、ログアウト後に戻らせたくないactionをリスト（必要ならcontrollerも指定）
		if ( $this -> action != 'login' && $this -> action != 'logout' && $this -> action != 'add'){
			$this->Session->write('login_back_url',Dispatcher::uri());
		}

		//２パターンの共通のapp_controllerのbeforeFilterに追加
		if ($this->Session->check('login_back_url')){
			$login_back_url=$this->Session->read('login_back_url');
		}else{
			$login_back_url='/';
		}

		$this->set('login_back_url',$login_back_url);

		//auth　コンポ－ネントの定義
		$this->Auth->loginRedirect  = $login_back_url;
		$this->Auth->logoutRedirect = $login_back_url;
		
		// ログインしているユーザーを配列$userに格納
		$this->set('auth',$this->Auth->user());

		//beforeFilterにログインしなくても良いactionを指定
		$this->Auth->allow();

		// Ajax呼び出しの場合、デフォルトでデバッグ出力しない。
		if ($this->layout == 'ajax') {
			Configure::write('debug', 0);
		} else {
			parent::beforeRender();
		}
	}
/*
	function __construct(){ 
		parent::__construct(); 
		$this->setLang(DEFAULT_LANGUAGE); 
	} 
*/
	/** 
	 * make language code available to all controllers and views 
	 */ 
	function setLang($lang) { 
		$this->lang = $lang; 
		$this->set('lang', $lang); 
	} 

	function appendLang($str) { 
		return $str . $this->lang; 
	} 
}
?>